package javase.ch02.created;

/**
 * @Desc TODO
 * @Author chenmin
 * @Date 2025/10/29
 *
 * 创建线程的方式
 * 方式二  implements Runnable 接口
 * 1.如何创建线程
 *    自定义类，实现Runnable接口；重写run()指定执行的任务
 *    new Thread(传入Runnable任务对象)，并调用start()真正启动线程
 *
 * 2.优势
 *   2.1 解决Java类单继承的问题
 *   2.2 允许创建不同线程，执行同一个任务
 *   2.3 线程池中，只可以传入Runnable或Callable接口的实例
 *
 * 3.劣势
 *   比extends Thread方式，稍显麻烦
 */
public class RunnableDemo {

    public static void main(String[] args) {
        //main is running..
        /*MyRunnable my1 = new MyRunnable();
        my1.run();*/

        //创建副线程  T1 is running..
        //第一个参数：任务对象   第二个参数：线程名字
        MyRunnable my2 = new MyRunnable();
        new Thread(my2, "T1").start();
        new Thread(my2, "T2").start();
    }

}
class MyRunnable implements Runnable{
    @Override
    public void run() {
        System.out.println(Thread.currentThread().getName()+" is running.. ");
    }
}